#region Microsoft Public License
/*
 * (c) Copyright Chenjun Wu. http://utablesdk.codeplex.com
 * 
 * This source is subject to the Microsoft Public License (Ms-PL).
 * Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
 * All other rights reserved.
 */
#endregion

﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using UTable.Input;
using UTable.Input.MultiTouch;

namespace UTable.Objects.Handlers
{
	public class ThreeFingersHandler: NFingersHandler
	{

		#region override Methods

		protected override void OnNFingersDown(List<FingerPoint> fingers)
		{
			switch (fingers.Count)
			{
				case 1:
					OnOneFingerDown(fingers);
					break;
				case 2:
					OnTwoFingersDown(fingers);
					break;
				case 3:
					OnThreeFingersDown(fingers);
					break;
			}
		}

		protected override void OnNFingersUp(List<FingerPoint> fingers)
		{
			switch (fingers.Count)
			{
				case 1:
					OnOneFingerUp(fingers);
					break;
				case 2:
					OnTwoFingersUp(fingers);
					break;
				case 3:
					OnThreeFingersUp(fingers);
					break;
			}
		}

		protected override void OnNFingersMove(List<FingerPoint> oFigners, List<FingerPoint> nFingers)
		{
			switch (oFigners.Count)
			{
				case 1:
					OnOneFingerMove(oFigners, nFingers);
					break;
				case 2:
					OnTwoFingersMove(oFigners, nFingers);
					break;
				case 3:
					OnThreeFingersMove(oFigners, nFingers);
					break;
			}
		}

		#endregion

		#region Virtual Methods

		#region Deal With One Finger Operation

		protected virtual void OnOneFingerDown(List<FingerPoint> fingers)
		{

		}

		protected virtual void OnOneFingerMove(List<FingerPoint> oFigners, List<FingerPoint> nFingers)
		{

		}

		protected virtual void OnOneFingerUp(List<FingerPoint> fingers)
		{

		}

		#endregion

		#region Deal With Two Fingers Operation

		protected virtual void OnTwoFingersDown(List<FingerPoint> fingers)
		{

		}

		protected virtual void OnTwoFingersMove(List<FingerPoint> oFigners, List<FingerPoint> nFingers)
		{

		}

		protected virtual void OnTwoFingersUp(List<FingerPoint> fingers)
		{

		}

		#endregion

		#region Deal With Three Fingers Opeation

		protected virtual void OnThreeFingersDown(List<FingerPoint> fingers)
		{

		}

		protected virtual void OnThreeFingersMove(List<FingerPoint> oFigners, List<FingerPoint> nFingers)
		{

		}

		protected virtual void OnThreeFingersUp(List<FingerPoint> fingers)
		{

		}

		#endregion

		#endregion
	}
}
